約 4,390,887 件
https://w.atwiki.jp/opengl/pages/171.html
スクロールバーコントロールです。 ウインドウのスクロールバーと違って任意の位置に表示できます。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_SCROLL 104 #define ID_Help 110 #define ID_STATUS 111 #define IDM_END 114 #define ID_OPTION 115 menu.rc #include windows.h #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END MENUITEM Option ID_OPTION MENUITEM ヘルプ , ID_Help END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル HINSTANCE hInstance; //インスタンスハンドル #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; static LRESULT ScrollProc(HWND hwnd,int nScrollCode,short nPos,HWND hwndScrollBar){ static int gPos=5; int gMin; int gMax; if(hwndScrollBar!=NULL) { GetScrollRange(hwndScrollBar,SB_CTL, gMin, gMax); switch(nScrollCode) { case SB_LINEDOWN gPos=GetScrollPos(hwndScrollBar,SB_CTL); gPos+=1; if(gPos gMax) gPos=gMax; break; case SB_LINEUP gPos=GetScrollPos(hwndScrollBar,SB_CTL); gPos-=1; if(gPos gMin) gPos=gMin; break; case SB_PAGEUP gPos=GetScrollPos(hwndScrollBar,SB_CTL); gPos-=2; if(gPos gMin) gPos=gMin; break; case SB_PAGEDOWN gPos=GetScrollPos(hwndScrollBar,SB_CTL); gPos+=2; if(gPos gMax) gPos=gMax; break; case SB_THUMBPOSITION gPos=nPos; break; } SetScrollPos(hwndScrollBar,SB_CTL,gPos,TRUE); } return 0; } //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){ static RECT rcDisp; switch (msg) { case WM_CREATE // コモンコントロールの初期化 InitCommonControls(); break; case WM_COMMAND switch(LOWORD(wp)) { case ID_EXIT PostQuitMessage(0); break; } break; case WM_SIZE GetClientRect(hWnd, rcDisp); SendMessage( hStatusbar, WM_SIZE, wp, lp ); break; case WM_DESTROY exit(0); break; case WM_VSCROLL return ScrollProc(hWnd,LOWORD(wp),HIWORD(wp),(HWND)lp); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wp , lp); }else{ return DefWindowProc(hWnd,msg,wp,lp); } } return 0; } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( スクロールバー ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L ステータスバー ,hWnd2,ID_STATUS); HINSTANCE hInst = (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE); HWND hScroll = CreateWindow(L SCROLLBAR ,L ,WS_CHILD|WS_VISIBLE|SBS_VERT, 10,10,40,150,hWnd2,(HMENU)ID_SCROLL,hInst,NULL); SetScrollRange(GetDlgItem(hWnd2,ID_SCROLL),SB_CTL,0,10,TRUE); SetScrollPos(GetDlgItem(hWnd2,ID_SCROLL),SB_CTL,5,TRUE); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return 0; }
https://w.atwiki.jp/tyakurejijii_hp/pages/44.html
文字列の表示 まず、実際に打ち込んで実行してみましょう。 /* 文字列の表示 */ #include stdio.h int main(void) { printf("Hellow World\n"); printf("こんにちは\n"); return 0; } 実行してみたら下のようになると思います Hellow World こんにちは できたでしょうか では、さっそく順を追って説明していきます。 まずこの部分 #include stdio.h int main(void) { return 0; } これは、最初のうちはあまり気にせず毎回書くお決まり文句と思ってて構いません パソコンに 「これからプログラム書きますよ~」「ここで終わりですよ~」 と伝えているようなものです。 次に、 /* 文字列の表示 */ ここに書いてある文字は実行結果に書かれていませんね これはコメント文といって、プログラムの実行結果には反映されない部分です。 無意味に思えるかもしれませんが、とてもプログラムを書く上でとても重要です。 1週間後に続きをやろうとして、何をここに書いたんだっけとわからなくなる ようなことを防いでくれます。 /* */ で囲まれた部分がコメント文になります。 printf("Hellow World¥n"); printf("こんにちは¥n"); ようやく、文字を表示している部分です printf(" ") とかくと文字を表示できます。 ¥n は実行結果で改行しますという意味です ; 最後に、とても重要なのがこれです。 プログラム上で次の行に改行するときにはほとんどこれが必要です。 一部例外がありますがそれは今後その部分が出てきたら説明します。 一通り説明が終わりました。 いかがだったでしょうか、あせらずじっくり読んでチャレンジしてみてください。 「ここがわからない!」 などありましたら、左のメニューからコメントまでコメントください。 今後の更新をお待ちください。 2010.03.21 .
https://w.atwiki.jp/directx11/pages/17.html
DirectXでは四角ポリゴンは無くて、三角ポリゴンしか描画できません。 しかし、三角ポリゴンを2つ使うと四角ポリゴンを作る事ができます。 shader.hlsl //頂点シェーダー float4 VS( float4 Pos POSITION ) SV_POSITION { return Pos; } //ピクセルシェーダー float4 PS( float4 Pos SV_POSITION ) SV_Target { return float4( 1.0f, 1.0f, 1.0f, 1.0f ); } main.cpp #pragma comment(lib, d3d11.lib ) #pragma comment(lib, d3dx11.lib ) #pragma comment(lib, d3dCompiler.lib ) #include d3dx11.h #include d3dCompiler.h //安全に解放する #define SAFE_RELEASE(x) if(x){x- Release(); x=NULL;} //定数定義 #define WINDOW_WIDTH 320 //ウィンドウ幅 #define WINDOW_HEIGHT 240 //ウィンドウ高さ //グローバル変数 HWND hWnd=NULL; ID3D11Device* Device = NULL; //デバイス ID3D11DeviceContext* DeviceContext=NULL; //デバイスコンテキスト IDXGISwapChain* SwapChain = NULL; //スワップチェイン ID3D11RenderTargetView* RenderTargetView = NULL; //レンダーターゲットビュー ID3D11InputLayout* VertexLayout=NULL; ID3D11Buffer* VertexBuffer=NULL; ID3D11VertexShader* VertexShader=NULL;//頂点シェーダー ID3D11PixelShader* PixelShader=NULL;//ピクセルシェーダー //ベクタークラス class VECTOR3 { public VECTOR3(float,float,float); float x; float y; float z; }; VECTOR3 VECTOR3(float a,float b,float c) { x=a;y=b;z=c; } //頂点の構造体 struct SimpleVertex { VECTOR3 Pos; //位置 }; //Direct3Dの初期化関数 HRESULT InitD3D(HWND hWnd) { // デバイスとスワップチェーンの作成 DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( sd, sizeof(sd) ); sd.BufferCount = 1; //バックバッファの数 sd.BufferDesc.Width = WINDOW_WIDTH; //バッファの幅 sd.BufferDesc.Height = WINDOW_HEIGHT; //バッファの高さ sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; //バッファのフォーマット sd.BufferDesc.RefreshRate.Numerator = 60; //リフレッシュレート sd.BufferDesc.RefreshRate.Denominator = 1; sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.OutputWindow = hWnd; sd.SampleDesc.Count = 1; sd.SampleDesc.Quality = 0; sd.Windowed = TRUE; D3D_FEATURE_LEVEL FeatureLevel = D3D_FEATURE_LEVEL_11_0; if( FAILED( D3D11CreateDeviceAndSwapChain( NULL, D3D_DRIVER_TYPE_REFERENCE, NULL,0, FeatureLevel,1,D3D11_SDK_VERSION, sd, SwapChain, Device ,NULL, DeviceContext) ) ) { return FALSE; } //レンダーターゲットビューの作成 ID3D11Texture2D *BackBuffer; SwapChain- GetBuffer( 0, __uuidof( ID3D11Texture2D ),(LPVOID*) BackBuffer); Device- CreateRenderTargetView( BackBuffer, NULL, RenderTargetView ); BackBuffer- Release(); DeviceContext- OMSetRenderTargets(1, RenderTargetView,NULL); //ビューポートの設定 D3D11_VIEWPORT vp; vp.Width = WINDOW_WIDTH; vp.Height = WINDOW_HEIGHT; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; vp.TopLeftX = 0; vp.TopLeftY = 0; DeviceContext- RSSetViewports( 1, vp ); //hlslファイル読み込み ID3DBlob *pCompiledShader=NULL; ID3DBlob *pErrors=NULL; //ブロブから頂点シェーダー作成 if(FAILED(D3DX11CompileFromFile(L shader.hlsl ,NULL,NULL, VS , vs_5_0 ,0,0,NULL, pCompiledShader, pErrors,NULL))) { MessageBox(0,L 頂点シェーダー読み込み失敗 ,NULL,MB_OK); return E_FAIL; } SAFE_RELEASE(pErrors); if(FAILED(Device- CreateVertexShader(pCompiledShader- GetBufferPointer(),pCompiledShader- GetBufferSize(),NULL, VertexShader))) { SAFE_RELEASE(pCompiledShader); MessageBox(0,L 頂点シェーダー作成失敗 ,NULL,MB_OK); return E_FAIL; } //頂点インプットレイアウトを定義 D3D11_INPUT_ELEMENT_DESC layout[] = { { POSITION , 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, }; UINT numElements = sizeof(layout)/sizeof(layout[0]); //頂点インプットレイアウトを作成 if( FAILED( Device- CreateInputLayout( layout, numElements, pCompiledShader- GetBufferPointer(), pCompiledShader- GetBufferSize(), VertexLayout ) ) ) return FALSE; //頂点インプットレイアウトをセット DeviceContext- IASetInputLayout( VertexLayout ); //ブロブからピクセルシェーダー作成 if(FAILED(D3DX11CompileFromFile(L shader.hlsl ,NULL,NULL, PS , ps_5_0 ,0,0,NULL, pCompiledShader, pErrors,NULL))) { MessageBox(0,L ピクセルシェーダー読み込み失敗 ,NULL,MB_OK); return E_FAIL; } SAFE_RELEASE(pErrors); if(FAILED(Device- CreatePixelShader(pCompiledShader- GetBufferPointer(),pCompiledShader- GetBufferSize(),NULL, PixelShader))) { SAFE_RELEASE(pCompiledShader); MessageBox(0,L ピクセルシェーダー作成失敗 ,NULL,MB_OK); return E_FAIL; } SAFE_RELEASE(pCompiledShader); //四角形 SimpleVertex vertices[] = { VECTOR3( -0.5f,-0.5f,0.5f), VECTOR3(-0.5f,0.5f,0.5f), VECTOR3( 0.5f,-0.5f,0.5f), VECTOR3( 0.5f,0.5f,0.5f), }; D3D11_BUFFER_DESC bd; bd.Usage = D3D11_USAGE_DEFAULT; bd.ByteWidth = sizeof( SimpleVertex ) * 4; bd.BindFlags = D3D11_BIND_VERTEX_BUFFER; bd.CPUAccessFlags = 0; bd.MiscFlags = 0; D3D11_SUBRESOURCE_DATA InitData; InitData.pSysMem = vertices; if( FAILED( Device- CreateBuffer( bd, InitData, VertexBuffer ) ) ) return FALSE; //バーテックスバッファーをセット UINT stride = sizeof( SimpleVertex ); UINT offset = 0; DeviceContext- IASetVertexBuffers( 0, 1, VertexBuffer, stride, offset ); //プリミティブ・トポロジーをセット DeviceContext- IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP ); return S_OK; } //レンダリング VOID Render() { float ClearColor[4] = {0,0,0,1 }; //消去色 DeviceContext- ClearRenderTargetView( RenderTargetView, ClearColor );//画面クリア //使用するシェーダーの登録 DeviceContext- VSSetShader(VertexShader,NULL,0); DeviceContext- PSSetShader(PixelShader,NULL,0); //プリミティブをレンダリング DeviceContext- Draw( 4, 0 ); SwapChain- Present( 0, 0 );//フリップ } //終了時解放処理 VOID Cleanup() { SAFE_RELEASE(VertexShader); SAFE_RELEASE(PixelShader); SAFE_RELEASE(VertexBuffer); SAFE_RELEASE(VertexLayout); SAFE_RELEASE(SwapChain); SAFE_RELEASE(RenderTargetView); SAFE_RELEASE(DeviceContext); SAFE_RELEASE(Device); } //メッセージプロシージャ LRESULT CALLBACK MsgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) { switch(msg) { case WM_DESTROY //終了時 Cleanup(); PostQuitMessage(0); break; } return DefWindowProc (hWnd, msg, wParam, lParam); } //メイン関数 INT WINAPI WinMain( HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR szStr,INT iCmdShow) { //ウインドウクラスの登録 WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L, GetModuleHandle(NULL), NULL, NULL, NULL, NULL, L Window1 , NULL }; RegisterClassEx( wc ); //タイトルバーとウインドウ枠の分を含めてウインドウサイズを設定 RECT rect; SetRect( rect,0,0,WINDOW_WIDTH,WINDOW_HEIGHT); AdjustWindowRect( rect, WS_OVERLAPPEDWINDOW, FALSE); rect.right=rect.right-rect.left; rect.bottom=rect.bottom-rect.top; rect.top=0; rect.left=0; //ウインドウの生成 hWnd = CreateWindow( L Window1 , L 四角ポリゴン , WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rect.right, rect.bottom, NULL, NULL, wc.hInstance, NULL ); MSG msg; ZeroMemory( msg,sizeof(msg)); //Direct3D初期化 if(SUCCEEDED(InitD3D(hWnd))) { //ウインドウ表示 ShowWindow(hWnd,SW_SHOW); UpdateWindow(hWnd); while(msg.message!=WM_QUIT) { if( PeekMessage( msg,NULL,0,0,PM_REMOVE)) { TranslateMessage( msg); DispatchMessage( msg); } else { Render(); } } } //終了 return 0; }
https://w.atwiki.jp/shisaku0017/pages/108.html
回帰直線表示 説明 散布図に自動的に回帰線を追加します 散布図の回帰線 対応するフリーウェア タグ一覧 グラフ表現 意図 点グラフ 詳細
https://w.atwiki.jp/ikisakisousaku/pages/10.html
コメントプラグイン @wikiのwikiモードでは #comment() と入力することでコメントフォームを簡単に作成することができます。 詳しくはこちらをご覧ください。 =>http //www1.atwiki.jp/guide/pages/921.html#id_476878da たとえば、#comment() と入力すると以下のように表示されます。 名前 コメント
https://w.atwiki.jp/wiki7_rou/pages/6.html
なにかいれとこ
https://w.atwiki.jp/taday/pages/6.html
tadayuki
https://w.atwiki.jp/opengl/pages/207.html
日時指定コントロールです。 resource.h #define IDR_MENU1 100 #define IDM_END 101 #define IDM_INPUT 102 #define ID_STATUS 103 menu.rc #include windows.h #include resource.h IDR_MENU1 MENU DISCARDABLE BEGIN POPUP ファイル BEGIN MENUITEM 終了 , IDM_END END MENUITEM 入力 , IDM_INPUT END DLG1 DIALOG DISCARDABLE 0, 0, 170, 50 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION 日付・時刻入力 FONT 9, MS Pゴシック BEGIN DEFPUSHBUTTON OK ,IDOK,7,30,50,14 PUSHBUTTON キャンセル ,IDCANCEL,102,30,50,14 END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include windows.h #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 #include richedit.h //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル wchar_t szTime[256] = L ; wchar_t szDate[256] = L ; #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; HWND MakeTimeCtl(HWND hWnd){ HWND hTime; LPWSTR lpstrTime = L tthh 時 mm 分 ss 秒 ; hTime = CreateWindowEx(0, DATETIMEPICK_CLASS, NULL, WS_BORDER | WS_VISIBLE | WS_CHILD | DTS_TIMEFORMAT, 160, 10, 120, 25, hWnd, NULL, (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), NULL); SendMessage(hTime, DTM_SETFORMAT, 0, (LPARAM)lpstrTime); return hTime; } HWND MakeDateCtl(HWND hWnd){ HWND hDate; LPWSTR lpstrDate = L yyy 年 MM 月 dd 日 dddd ; hDate = CreateWindowEx(0, DATETIMEPICK_CLASS, NULL, WS_BORDER | WS_VISIBLE | WS_CHILD | DTS_LONGDATEFORMAT, 10, 10, 150, 25, hWnd, NULL, (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), NULL); SendMessage(hDate, DTM_SETFORMAT, 0, (LPARAM)lpstrDate); return hDate; } LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp){ static HWND hDate, hTime, hParent; switch (msg) { case WM_COMMAND switch (LOWORD(wp)) { case IDOK GetWindowText(hTime, szTime, sizeof(szTime)); GetWindowText(hDate, szDate, sizeof(szDate)); InvalidateRect(hParent, NULL, TRUE); EndDialog(hDlg, IDOK); return TRUE; case IDCANCEL EndDialog(hDlg, IDCANCEL); return TRUE; } break; case WM_INITDIALOG hDate = MakeDateCtl(hDlg); hTime = MakeTimeCtl(hDlg); hParent = GetParent(hDlg); return TRUE; } return FALSE; } //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd , UINT msg , WPARAM wParam , LPARAM lParam){ switch( msg ){ case WM_SIZE SendMessage( hStatusbar, WM_SIZE, wParam, lParam ); return 0; case WM_COMMAND switch (LOWORD(wParam)){ case IDM_END SendMessage(hWnd, WM_CLOSE, 0, 0); break; case IDM_INPUT DialogBox((HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), L DLG1 , hWnd, (DLGPROC)DlgProc); break; } return 0; case WM_DESTROY exit(0); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wParam , lParam); }else{ return DefWindowProc(hWnd,msg,wParam,lParam); } } } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( 日時指定コントロール ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // コモンコントロール関係の初期化 InitCommonControls(); // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L メニューの入力で入力用ダイアログ表示 ,hWnd2,ID_STATUS); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return 0; }
https://w.atwiki.jp/kakis/pages/5623.html
xeltolto /// / 月天輪 xelt\olto \ 15 seren klel 月のわっか \ 月天輪。月の回りにわっかのように浮かんでいる虹のような色をした帯のこと。虹といっても多くは赤色。太陽でいうところのハロにあたる \
https://w.atwiki.jp/arma2dayz/pages/369.html
【乗り物】のページに無いモノ、内容が異なるものなどを記載していきます。 基本的には本家Dayz MODとシステムは同じなので、操作などは操作一覧を参照。 Originsの独自要素としてスキルやツールなどに追加が、車種や航空機などにも追加がある。 スポーンポイントなどは本wikiの【Dayz Origins/MAP】を参照されたし。 Origins の車両の特徴ver1.8の修理システムの変更 v1.8からの修理道具 車両からのパーツ回収システム 車両の強化システム 車両のターボ強化 車両のスポーン/リスポーン 車両内での気絶の扱い ゾンビとの接触 車両に備え付けの機関銃 車両の運搬 車両の施錠 各種乗り物一覧航空機 軽車両 トラック 船舶 Origins の車両の特徴 ver1.8の修理システムの変更 ツールボックスが廃止され、Old hammer、Old pliers、Adjustable Wrench、Screwdriver set、Mechanic toolkit、Jackが個別に必要になった。基本的に工業施設に湧くが、Old pliers と Mechanic toolkit だけは湧かない。 農業施設なら全種類が湧く。 Old pliers は民家にも湧く。 これらのツール類は工業施設に湧くMechanic Bagでひとまとめにできる。ツールベルトのスロットも空けられる。 修理の際にはその車両タイプ専用の修理パーツが必要になる。例えば、大型車の修理にはTruck Engine partsやTruck Wheelが新たに必要になった。航空機やオートバイの修理にはまた別にパーツが必要。 Turboエンジンの搭載が可能になった車両に近づいてアクションメニューからターボエンジンを起動。Shift押下時の最大速度上昇 Lv1は無スキルでもインストール可能 Lv2からは要スキル? 補強にはスキルが必要になった 車両の修復度が%表記ではなく、Bad、Satisfactiory、Normal、に代わった対応するパーツのスキル習得(Resarchじゃない方)で%表記に変わる 拾ったパーツにも修復度が設定され、傷んでいるものは若干重量が軽い修復度は車両の性能には関与しない。修復度=耐久力。エンジンが損傷しているからと言って最高速度が下がったりはしない。 傷んだパーツだけで修理しても、特に問題なく動く。燃料も漏れない。ヘリコプターのリアローターはSatisfactiory以下だと機体が回転してしまい、うまく飛べない。 車両も左右でタイヤの修理状況が偏っていると、直進せず損傷の激しい方に少しづつ曲がっていく。と言っても非常に軽微で普通に走行する分には気付かないし影響も出ない。 スキル習得で完全修復が可能になる。完全に修理された部位はRepair Menuから表示が消える。修復度は新しいパーツで上書きされるので、Normal以上の状態でもBadのパーツで修理するとそうなる。傷んだパーツで繰り返し修理してもよくなるわけではない。 修復度100%(無傷の状態)にするにはメカニックスキル 3.3 を修了する必要がある。 修復度0%の状態から無傷のパーツ(インベントリで右クリックしてRepairが出ない)で修理した際の修復度は、スキルの習得段階で上昇していく。無スキル状態では Satisfactiory 止まりだが、3.3を完了させていればどの部位を修理しても100%まで修復される。 スキルを完全に習得するまで完全修理が出来ないが、逆に無限に修理を続けスキル進捗を稼ぐことが出来る。 完全に修理されRepairメニューから表示が消えている場合は、取り外してしまえばよい。 傷んだパーツそのものを修理できるが、やはりスキルが必要(Research skill)修理スキル習得後にGearで右クリックで Repair を選択できるようになる 修復度赤の部品のみ、緑(無傷)の状態に直すのに2回修理が必要 スキル3.3を修了することで1回の修理で緑まで直すことができるようになる 車の施錠はある程度車の修復度が回復していないとできなくなった窓ガラスも含めた修理を完了させて初めてインストール可能になる。 車両を修復度100%まで修理すると一部の車両は見た目が変わり、新車っぽくなる。ランドローパー、UAZ系、SUV系辺りが該当 Tavianderはボロボロだが修理しても新車に戻らない (スキルに関しては【origins のスキル】参照) v1.8からの修理道具 「Better result with」はv1.8.2か3で追加された項目 この部分の道具は無くても修理自体は可能だし、成功もする 1.1~1.3を全て完了させると mechanic toolkit が追加される やはり持って無くても修理は可能。 ただし無いと修理100%(緑)には出来ない タイヤ エンジン 燃料タンク 窓ガラス ボディ 小型車 Tool Adjustable Wrench Adjustable Wrench Old pliers Screwdriver set Old hammer - Screwdriver Set - - - Material Car Wheel Engine Parts Fueltank parts Window screen Scrap Metal Better Result with Jack Old pilers Adjustable Wrench Old pilers Adjustable Wrench - Jack Jack - Jack 大型車 Tool Adjustable Wrench Old hammer Old pliers Old hammer Jack Adjustable Wrench - - - Screwdriver set - - Material Truck Wheel Truck Engine Parts Fueltank Parts(Truck) Scrap Metal Better Result with Old hammer Old pliers Adjustable Wrench Adjustable Wrench - - Jack Jack メインローター リアローター 航空電子工学 モーター 窓ガラス ボディ ヘリコプター Tool Old hammer Old hammer - Old hammer - Old pliers - Old pliers Old pliers - Screwdriver set Screwdriver set Screwdriver set Screwdriver set Screwdriver set Adjustable Wrench Adjustable Wrench - Adjustable Wrench - Material Main Rotor Assembly Rear Rotor Avionics Helicopter Motor Windscreen Glass Better Result with Jack Jack Adjustable Wrench Jack Old pilers エンジン 航空電子工学 窓ガラス ボディ 航空機 Tool Old hammer - - Old hammer Old pliers Old pliers - - Screwdriver set Screwdriver set Screwdriver set - Adjustable Wrench - - - Material Airplane Engine Parts Avionics Windscreen Glass Scrap Metal Better Result with Jack Jack Adjustable Wrench Adjustable Wrench - - - Jack エンジン ボート Tool Adjustable Wrench Material Moto Engine Better Result with - 車両からのパーツ回収システム ver1.7.9.5まで ツールボックスがあれば車両から特定のパーツが回収できるようになる。 しかし、回収するパーツの修復度が80%以上でなければできない。 また、ボディや窓ガラスは回収できない。 できる場合は青文字でRemoveと表示される。 エンジンパーツを取り外すときに燃料が一定以上のこっていると爆発する可能性がある?(要検証・数回試しても爆発を確認できず) ver1.8以降 基本的には1.7と同じ。 ツールボックスが削除されたので、個別にツールが必要になった。 車両の強化システム 特定の車はレインフォースマテリアルを使用することにより強化が可能である。 wheel guard:タイヤ部分の補強(外から撃たれにくくする) window guard:前面のガード(ぶつかったときにパンクしにくくなる?) windshield guard:乗員のガード(外から撃たれにくくなる) front plow:用途不明(ロードキルしやすくなる?) の4か所。 取り外しは不可能なので注意しましょう。 特に不利になるわけではありませんが、他人が手をつけたのがバレバレです。 Gear を漁られたり留守中に破壊されているかもしれません。 車両のターボ強化 エンジンが50%以上修復されている車両には、ターボをインストールすることができる。 前提としてレンチとドライバーが必要。 インストールする車種によって必要なパーツが微妙に異なる。 Lv1 1 x Scrap Metal 1 x Mortor oil 1 x Engine parts / Truck Engine parts Lv2 1 x Scrap Metal 1 x Mortor oil 1 x Engine parts / Truck Engine parts 1 x Computer Chips 1 x Electriacl circuits Lv3 1 x Scrap Metal 1 x Mortor oil 1 x Engine parts / Truck Engine parts 2 x Computer Chips 2 x Electriacl circuits エンジンの修復度は不問なので、破損したヤツや拾ってすぐのやつでも改修化。 Electriacl circuits の回収が1枚でも面倒なのにそれが複数必要になるのと、 Computer Chips を取りにノヴィストラーナ共和国に行く必要がある。 車両のスポーン/リスポーン 車両がスポーンする位置は決まっており、修理状況(各パーツの状態)も一緒である。 車両は完全に破壊(アクションメニューが出てこない)するとサバリセ後に元の位置へ出現する。 大抵の車両はフラググレネードを一個投げれば破壊可能。 誰も近くによらない日が数日(リアルタイムで4日ほど)続くと、初期化される。 積荷、修理状況、乗り捨てた場所などすべてリセットされ、初期位置にリスポーンする。 車両内での気絶の扱い 強制的に車両から降ろされます。速度が出ている場合そのまま叩きつけられて死亡する。 体力がなくて気絶するようなとき、壊血病にかかっている時の運転は控えましょう。 ゾンビとの接触 走行中の車両とゾンビが接触すれば、ゾンビをロードキル(轢き殺す)ことができる。 昔は出来なかったが今は出来る模様。充分に速度を出す必要がある。 ロードキルしても車両は傷付かない。しかしショックでハンドルを取られやすいので、無理してやることもない。 充分な速度が出ていない状態でゾンビに進行を遮られると、止まってしまいます。 車両に備え付けの機関銃 オリジナルのMODにもあったが車種が増えたのでここでも記載。 一部の車両 / ボート / ヘリコプターには機関銃が備え付けられています。 これらの機関銃はリロード不可能で、手持ちのマガジンからのリロードは出来ません。 LMGなどの弾薬を持っていてもリロードできませんし、リロード用の弾薬はどこにもポップしません。 サーバーリスタート時に自動的に補充されます。 ちなみにヘリコプターには複数の機銃が備え付けられている場合があるが、それぞれシート名が異なる。 左銃座:Crewchief's sheat 右銃座:Gunner's sheat 後部銃座:RearGunner's sheat 車両の運搬 Beast(運搬トラック) と Scrap Ferry は荷台を開いて、小型の車両なら載せて運ぶことができる。 Beast Driver Seat に座るとアクションメニューに「 Open Rump 」が追加される。 それを実行すると荷台が展開して、車両が乗り上げられるようになる。 音がしたりメッセージが出るわけではないので、目視で確認する必要がある。 Scrap Ferry フェリーの場合はコツが必要。 波打ち際に対して平行にフェリーを停めて固定しておかないと、車がフェリーを押して出してしまう。 車は完全に水に入って動けなくなると鯖リセを待たずにその場で消滅する。 ちなみに水上のフェリーに泳いで荷台から乗ろうとすると、荷台に触れた瞬間即死する。 水上のフェリーに乗るときは運転席まで泳ぐこと。 どちらもあまり大きな車両は載せられない。無理矢理載せてもパーツが傷んでしまう。 なので運搬車両に運搬車両を載せて、その上にさらに・・・という訳にはいかない。 UAZくらいの大きさは無理っポイ。 車両の施錠 アクションメニューから「Install Locker」を選ぶと施錠できる。 v1.8からは車両を完全に修理しないとインストールできなくなった。 エンジンやタイヤはもちろん窓ガラスも含め、それらが Normal(黄色表記) まで完治して初めてインストールできる。 施錠そのものは修復度に関係ない。 無スキル状態では100%まで修理できないので、実質的にメカニックスキルがある程度は必要。 施錠すると解錠するまで、車両の乗降、修理、取り外し、ギアの確認、車両名の確認ができなくなる。 ただし、破壊は可能 解錠の際にはドライバーセットが必要。パスワードを正しく入力することで解錠できる。 ただし、ドライバーセットさえあれば誰でも入力できるので、当てずっぽうに入力しても正解であれば盗むことが出来る。 鍵は水陸車と航空機で異なる。取り付け以外は一緒。 自転車 / PBX には施錠できない。 陸上 / 水上車両:Screwdriver Set Old Pliers 1 x Battery 1 x Code Lock 1 x Electrical Circuits 航空機:Screwdriver Set Old Pliers 3 x Battery 1 x Code Lock 3 x Electrical Circuits 3 x Hydraulic pipes 2 x Computer Chips 各種乗り物一覧 積載人数はもう計測不明なので不記載。わかった人いたら書いて。 航空機 AN-2以外の飛行機は基本的に世界に1機しかない。 名称 画像 容量 備考 雑貨 武器 カバン AH6X(Little Bird) 100 20 4 通常MODよりも多く収納できる An-2 Biplane 350 70 5 通常MODよりも多く収納できる Camel 20 3 0 複葉機v1.8.3で追加南側の島の空港など色違い2種類 DC-3 500 150 150 HC3 Merlin 250 100 15 Ka60C 250 20 5 世界に2台のみいづれも海上にある L-39M 80 10 2 ジェット機v1.8.3で追加 MH-60S 250 50 5 世界に3台あるが、どれも見つけづらいChernovar 西の海上の軍艦のヘリポート(038, 147)辺りとか MH-6J 70 20 2 通常MODよりも多く収納できる Mi-17 250 100 10 通常MODよりも多く収納できる Mi-17c 300 100 10 Mi-171Sh 250 100 10 Mig15 80 10 2 ジェット機v1.8.3で追加 Praga Copter(Scrap Helicopter) 140 20 6 色違い2種類 UH-1H Huey 250 20 5 通常MODよりも多く収納できる Unicopter 100 10 3 FlyingFortress 100 10 20 世界に1機しかない Yak-42d 380 20 7 旅客機 軽車両 修理に エンジン、燃料タンク、タイヤ等 を用いるもの 名称 画像 容量 最高速度 備考 雑貨 武器 カバン 道路 / 道路外 ATV 20 10 2 ? / ? 通常MODより収容量が少ない Bathmobile 100 10 10 120 / 50 Bimmer M3 50 5 3 ? / ? v1.7.9.5で追加 Buhanka 100 10 10 ? / ? v1.7.9.5で追加 Car 65 10 5 ? / ? 色違い4種類青:1台緑:2台赤:2台白:3台 Ford Transit MG 120 15 10 ? / ? 機関銃付 Gaika 100 10 10 ? / ? Gatling Capri 69 100 10 10 ? / ? v1.7.6で追加機関銃付 GAZ 65 14 4 ? / ? HMMWV US 150 20 5 ? / ? 通常MODよりも多く積める Lada (decorated) 50 10 2 ? / ? Lada 2015 110 10 10 91 / 21 燃料容量80L。非常に燃費が悪い。 LandRover 120 16 6 ? / ? LandRover MG 80 10 4 ? / ? 機関銃付 Lublin(truck) ? ? ? ? / ? トラックと書いてあるが軽車両Gear容量0? M1008 CUCV 100 10 10 ? / ? Off-road(tan) 75 5 5 ? / ? Pick-Up 80 16 5 ? / ? 通常MODよりも収納量が多い Pickup PK 150 20 2 ? / ? 機関銃付 Polonez 78 100 10 10 ? / ? 色違い2種類 Rodina 62 100 10 10 ? / ? v1.7.6で追加給油車 Taviander 75 5 5 ? / ? v1.7.9.5で追加 Scrap Buggy 100 10 10 62 / 45 Sedan 50 10 2 ? / ? UAZ(White) 65 10 4 ? / ? 白い乗用車 UAZ 110 18 6 ? / ? 幌付きのジープ UAZ MG 150 20 3 80 / 40 機関銃座付ジープ UAZ (Militia) 50 10 2 ? / ? SUV Special 110 16 6 100 / 50 SUV MG 160 25 4 ? / ? 機関銃座付SUV VW(GOLF) 65 10 4 ? / ? ZAZ968M 50 5 3 ? / ? v1.7.9.5で追加 トラック 修理にトラック用のパーツが必要なモノ 名称 画像 容量 最高速度 備考 雑貨 武器 カバン 道路 / 道路外 Colonel Tent Truck 180 25 7 ? / ? v1.8で追加Michaelov南 Colonel Fuel Truck 180 25 7 ? / ? v1.8で追加Sector A敷地内 Excavator 100 15 5 ? / ? ショベルカー一部の【建築】で使用世界に3台しかなく、内2台はNovistranaにある Fire Engine(volvo) 150 15 10 ? / ? Beast(Kamaz Trasport) 100 15 5 ? / ? v1.7.9.5で追加車両運搬可v1.8から「Beast」に名称変更 Maniac Truck 150 15 10 ? / ? v1.7.9.5で追加 Ren Truck 150 15 10 ? / ? 色違いあり Scrap APC 70 15 6 ? / ? Scrap Bus 120 15 10 ? / ? 機関銃付 URAL 250 50 15 50 / 80 通常MODよりも収納量が多い URAL 2 250 50 15 50 / 80 URALの色違い幌がついていない Utility Truck(Open) 250 50 10 / V3S 220 50 15 ? / ? 通常MODよりも収納量が多い 船舶 修理は基本的にモトエンジンとレンチが必要だが、それ以外には必要ない モトエンジンは破損しない ヘリコプターがあれば事足りるので使われることはあまりない? 名称 画像 容量 最高速度 備考 雑貨 武器 カバン 通常/ターボ CRRC(モーターボート) 50 10 1 ?/? Raft(イカダ大) 500 50 10 ?/? Small Raft(イカダ小) 150 25 4 ?/? RHIB 200 60 8 ?/? 機関銃付 Scrap Ferry(フェリー) 120 15 5 ?/? v1.7.9.5で追加車両運搬可 Nautilus(潜水艦) 300 30 7 ?/? v1.7.8で追加Engine compartmentの修理が必要 PBX(モーターボート) 50 10 1 40/70 折り畳み式(組み立て式)スポーンポイントは無い鯖リセで様々なものが消滅する・畳んで収納してないと存在が消滅・給油した燃料の情報・Gearに収納したアイテム 潜水艦の Engine Compartment の修理には以下の素材が必要 2 x Hydralic pipes 1 x Electrical Circuits 1 x Fuel Parts 1 x Engine parts Electrical Circuits だけが非常にレア。Map内のどこかに配置されているストレージボックスから回収するしかない 【Dayz Origins/MAP】でサーキットのスポーン場所を確認 Novistarana の生存者キャンプなどに出現する